package com.cg.design.graphicdesignpattern.bridge;

/**
 * 类的层次结构：Display类，功能是抽象的，负责“显示一些东西”，位于“类的功能层次结构”的最上层
 *
 * @program: LeetCode->Display
 * @description: 类的层次结构：Display类，功能是抽象的，负责“显示一些东西”，位于“类的功能层次结构”的最上层
 * @author: cg
 * @create: 2022-03-23 23:45
 **/
public class Display {

    /**
     * 实现了Display类的具体功能的实例
     * 做为两个层次结构的“桥梁”
     */
    private DisplayImpl display;

    public Display(DisplayImpl display) {
        this.display = display;
    }

    /**
     * 显示前的处理
     */
    public void open() {
        display.rawOpen();
    }

    /**
     * 显示处理
     */
    public void print() {
        display.rawPrint();
    }

    /**
     * 显示后的处理
     */
    public void close() {
        display.rawClose();
    }

    /**
     * 调用open、print、close进行显示
     */
    public final void display() {
        open();
        print();
        close();
    }

}
